package br.ufrpe.bsi.manegedbean;

import br.ufrpe.bsi.bean.Log;
import br.ufrpe.bsi.bean.Usuario;
import br.ufrpe.bsi.dao.LogDAO;
import br.ufrpe.bsi.dao.UsuarioDAO;
import com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException;
/**
*
* @author Daniel
*/
public class UsuarioManegedBean {
    private UsuarioDAO usuarioDAO = new UsuarioDAO();
    private Usuario usuario = new Usuario();
    LogDAO logDAO = new LogDAO();
    
    public UsuarioManegedBean() {
    }
    
    public String cadastrarUsuario(){
        try{
            usuarioDAO.inserir(usuario);
            Log log = new Log("Cadastrar usuário"+usuario.toString(), usuario.getLogin());
            logDAO.inserir(log);
            return "sucesso";
        }catch(MySQLIntegrityConstraintViolationException ex){
            return "erroChavePrimaria";
        }catch(Exception ex){
            return "erroGeral";
        } 
    }
    
    public String excluir(){
        try {
            String login = LoginManegedBean.recuperarLogin();
            usuarioDAO.excluir(login);
            Log log = new Log("Excluir usuário");
            logDAO.inserir(log);
            LoginManegedBean.matarSessao();
            return "sucessoExcluir";
        } catch(Exception ex){
            return "erroGeral";
        }
    }
    
    public String inicioEditar(){
        try {
            UsuarioDAO userDAO = new UsuarioDAO();
            String login = LoginManegedBean.recuperarLogin();
            usuario = userDAO.retornar(login);
            return "vaParaEdicao";
        } catch(Exception ex){
            return "erroGeral";
        }
    }
    
    public String fimEditar(){
        try {
            usuario.setLogin(LoginManegedBean.recuperarLogin());
            usuarioDAO.editar(usuario);      
            Log log = new Log("Editar usuário"+usuario.toString());
            logDAO.inserir(log);
            return "sucesso";
        } catch(Exception ex){
            return "erroGeral";
        }
    }
    
    public String visualizar(){
        try {
            usuario = usuarioDAO.retornar(LoginManegedBean.recuperarLogin());      
            return "vaParaVisualizacao";
        } catch(Exception ex){
            return "erroGeral";
        }
    }
   
    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
}